# 1）进入然知系统，跳转到该页面后操作
# 页面的加载全部使用显式等待
# 输入正确的成员信息，点击保存，跳转到如下页面代表保存成功，
# 将该页面截图保存

import time

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.select import Select
from selenium.webdriver.support.wait import WebDriverWait


driver = webdriver.Edge()
driver.get("http://127.0.0.1/ranzhi/www/")
time.sleep(1)

# 用户名密码
driver.find_element("xpath",'//*[@id="account"]').send_keys("admin")
driver.find_element("xpath",'//*[@id="password"]').send_keys("123456")
# 点击登录
driver.find_element("xpath",'//*[@id="submit"]').click()
time.sleep(2)
# 点击文档
driver.find_element("id","s-menu-4").click()
time.sleep(2)
# 切换到iframe
driver.switch_to.frame(driver.find_element("id","iframe-4"))
time.sleep(2)
# 点击其中一个文档库
driver.find_element("class name","libs-group-heading.libs-custom-heading").click()
time.sleep(2)
# 点击创建文档
driver.find_element("class name","btn.btn-primary").click()
time.sleep(2)

# 所属分类下拉框
ssfl = driver.find_element("id","module")
# 强转为select对象
s = Select(ssfl)
# 获取所有的下拉选项的对象
ls = s.options
lstext = []
for i in ls:
    lstext.append(i.text)
# 选中
s.select_by_visible_text(lstext[2])
# 授权用户下拉框
sqyh = driver.find_element("class name","chosen-choices")
# 强转为select对象
s1 = Select(sqyh)
# 获取所有的下拉选项的对象
ls1 = s1.options
lstext1 = []
for j in ls1:
    lstext1.append(j.text)
# 选中
s.select_by_visible_text(lstext[1])

# 2）总结抄写：
# 显式等待和隐式等待的区别
# 你对浏览器都进行过什么操作，分别是什么方法
# 如何选择页面组件的定位
# XPath定位元素时，绝对路径和相对路径有什么区别？
# 如果从下拉框中选中一个数据
# 如何使用Selenium上传文件？